The boot environment for computers presents significant challenges to innovation within the hardware and software industries. Each new platform capability or hardware innovation requires firmware developers to craft increasingly complex solutions, and often requires Operating System (OS) developers to make changes to their boot code before customers can benefit from the innovation. This can be a time-consuming process requiring a significant investment of resources. The hardware and software industries have attempted to allow the platform and OS to evolve and innovate independently of one another.
To permit such independent innovation and maintain necessary communication between an OS and platform firmware (any software that is included in read-only memory (ROM)), an interface having an additional layer of firmware code provides for the abstraction of the OS and all higher level software from the firmware. The interface operates in what is referred to as a pre-boot environment. Previous attempts to develop such an interface have required the OS to have specific knowledge of the workings of certain hardware devices. Previous attempts at developing the interface were not effective and did not allow for the dynamic management of those devices in the pre-boot environment.
Specifically, when configuring hardware devices in the pre-boot environment, previous solutions required a total system reset to make the configuration changes activate. Thus, no previous solutions exist to activate configuration changes without restarting the entire system. This deficiency found in previous systems is highlighted by the fact that most changes in a system do not typically require a system reset which can take a long period of time. All classes of machines can benefit from configuring hardware devices without requiring a total system reset, but the benefit becomes much more pronounced when enterprise class systems are considered that take many minutes to go through a total reset.